package itsm.isperp.module.repository.bpm;

import itsm.isperp.framework.data.mybatis.dao.CUDMapper;
import itsm.isperp.module.entity.bpm.BpmNodeSetting;
import itsm.isperp.module.entity.db.DbEntity;

import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * 
 * 流程节点设置数据库映射器
 * 
 * 
 * @author lizx
 * @date 2013-7-3
 * 
 */
@Repository
public interface BpmNodeSettingMapper extends CUDMapper<BpmNodeSetting> {

	/**
	 * 根据流程节点的id获取到流程节点定义实体
	 * 
	 * @param actNodeId
	 *            流程节点id
	 * @return 流程节点定义实体
	 */
	BpmNodeSetting findByNodeId(@Param("actNodeId") String actNodeId);

	/**
	 * 根据实体id获取到实体对象
	 * 
	 * @param id
	 *            实体id
	 * @return 实体对象
	 */
	DbEntity findDbEntityById(@Param("id") String id);

	/**
	 * 根据id获取符合的项目域字段以及其实体
	 * 
	 * @param id
	 *            节点id
	 * @return 结果
	 */
	Map<String, Object> findDbEntityWithDomainFieldById(@Param("id") String id);

	/**
	 * 指定查询的列根据流程节点id获取流程节点定义的Map
	 * 
	 * @param actNodeId
	 *            流程节点id
	 * @param selectColumns
	 *            指定查询的列
	 * @return 流程节点定义的Map
	 */
	Map<String, Object> findMapByNodeId(@Param("actNodeId") String actNodeId,
			@Param("selectColumns") String... selectColumns);

}
